The disclosed technology relates generally to data encoding, and more particularly to low-density parity check (LDPC) encoders.
With the continuing demand for high-reliability transmission of information in digital communication and storage systems, and with the rapid increase in available computational power, various coding and decoding techniques have been investigated and applied to increase the performance of these systems. One such coding technique, low-density parity check (LDPC) coding, was first proposed in the 1960s, but was not used until the late 1990s when researchers began to investigate iterative coding and decoding techniques.
LDPC codes are systematic block codes which have a very sparse parity check matrix. A sparse parity check matrix contains mostly ‘0’ entries with only relatively few ‘1’ entries. In a sparse parity check matrix only a very small number of message bits participate in any given parity check. LDPC codes can be regular or irregular. When the number of message bits in each parity check is the same, the LDPC codes are said to be regular. Otherwise they are said to be irregular.
The IEEE Std 802.11n™-2009 of wireless local area network (WLAN) standards allow for the use of LDPC codes as an optional mode. The IEEE Std 802.11n™-2009 standards are incorporated herein in their entirety. The LDPC codes proposed for the IEEE 802.11n standards are irregular LDPC codes. There are three LDPC block lengths in the IEEE 802.11n standards: 648, 1296, and 1944 bits. The number of parity check bits for these LDPC codes depends on the coding rate.
There are a few concerns with LDPC codes. The error floor of LDPC codes may be of particular concern; in several applications, low error floors are required. However, it may be difficult to implement a low error floor LDPC code without making the code block length large. Lengthy LDPC codes, on the other hand, may require large memory buffers and/or computational power, even though the parity-check matrix is sparse. Due to the potentially large memory and computational requirements of suitably powerful LDPC encoders, the latency of these LDPC encoders is typically greater than desired.